Selamat datang

Assalamualaikum.. Disini saya akan mencoba untuk menganalisis sebuah gambar menggunakan EBImage. Nah sebelum mempelajari hal itu, kita harus mengetahui apa yang itu EBImage?

gambar EBImage

EBImage menyediakan fungsionalitas tujuan umum untuk pemrosesan dan analisis gambar. Dalam konteks pengujian seluler berbasis mikroskop (high-throughput). Hal ini memungkinkan otomatisasi tugas tersebut menggunakan bahasa pemrograman R dan memfasilitasi penggunaan alat lain di lingkungan R untuk pemrosesan sinyal, pemodelan statistik, pembelajaran mesin, dan visualisasi dengan data gambar.

jadi singkatnya. kita bisa menganalisis serta mengedit (mengatur kecerahan, kontras, ukuran, filter, dan lain-lain) dari gambar tersebut agar sesuai keinginan kita. Lalu bagaimana caranya untuk menganalisis sebuah gambar?

Menginstal library(EBImage)

Jadi kita harus meng-instal terlebih dahulu packages EBImage pada console dengan memasukkan tulisan seperti dibawah ini, lalu klik enter. Maka komputer akan otomatis meng-instal packages EBImage dan kita harus menunggu beberapa menit.

gambar instal library

Mengimpor Library

Setelah selesai men-instal library, langkah selanjutnya adalah mengimpor library dengan kode program berikut ini :

library(EBImage)

Mengimpor Gambar

Selanjutnya kita dapat meng-impor gambar yang diinginkan. Di sini saya mencoba untuk meng-impor gambar dari Universitas Islam Negeri Maulana Malik Ibrahim Malang dari komputer saya, dengan kode program sebagai berikut :

Image <- readImage("D:/UIN Malang.jpg")
display(Image)

Menampilkan Detail Gambar

Kita bisa mengetahui detail dari gambar diatas dengan mengetikkan kode berikut :

print(Image)
## Image 
##   colorMode    : Color 
##   storage.mode : double 
##   dim          : 4160 3120 3 
##   frames.total : 3 
##   frames.render: 1 
## 
## imageData(object)[1:5,1:6,1]
##            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
## [1,] 0.09411765 0.03137255 0.07450980 0.10196078 0.09803922 0.10196078
## [2,] 0.09411765 0.04705882 0.08627451 0.11372549 0.09803922 0.09019608
## [3,] 0.10196078 0.08235294 0.09803922 0.09803922 0.08627451 0.09803922
## [4,] 0.12549020 0.10196078 0.09803922 0.10980392 0.10980392 0.10196078
## [5,] 0.11372549 0.10980392 0.10980392 0.11764706 0.12549020 0.11764706

Menampilkan Histogram Gambar

Kita bisa mengetahui detail histogram dari gambar diatas dengan mengetikkan kode berikut :

hist(Image)

Menyesuaikan Kecerahan

Disini kita akan mencoba untuk memanipulasi kecerahan gambar menggunakan tanda + dan - pada intensitas/kecerahan gambar. Pada gambar a kecerahan ditambah 0.2 dan gambar b kecerahan ditambah 0.2 didapatkan perbandingan di bawah. Berikut kode programnya :

a <- Image + 0.2
b <- Image - 0.3
par(mfrow = c(1,2))
plot(a)
plot(b)

Menyesuaikan Kontras

Kita akan mencoba untuk memanipulasi kontras gambar menggunakan tanda * pada kontras gambar. Pada gambar a kecerahan ditambah 0.2 dan gambar b kecerahan ditambah 0.2 didapatkan perbandingan di bawah. Berikut kode programnya :

c <- Image * 2
d <- Image * 0.6
par(mfrow = c(1,2))
plot(c)
plot(d)

Koreksi Gamma

Kita akan mencoba untuk memanipulasi gamma gambar menggunakan tanda ^. Pada gambar pertama menggunakan 4 dan gambar kedua menggunakan 0.3 didapatkan perbandingan di bawah. Berikut kode programnya :

e <- Image ^ 4
f <- Image ^ 0.3
par(mfrow = c(1,2))
plot(e)
plot(f)

Memotong Gambar

Kita akan mencoba memotong gambar dengan kode berikut :

display(Image[189:1000, 100:600,])

Memutar Gambar

Kita akan mencoba memutar gambar dengan posisi 45 derajat dengan kode berikut :

Imagetr <- translate(rotate(Image, 45), c(0, 50))
display(Imagetr)

Memanajemen warna

Karena array piksel memiliki tiga sumbu di dimensi. Sumbu ketiga adalah slot untuk tiga saluran: merah, hijau dan biru, atau RGB. Disini saya akan membuat gambarnya berwarna hitam putih dengan kode beikut :

colorMode(Image) <- Grayscale
print(Image)
## Image 
##   colorMode    : Grayscale 
##   storage.mode : double 
##   dim          : 4160 3120 3 
##   frames.total : 3 
##   frames.render: 3 
## 
## imageData(object)[1:5,1:6,1]
##            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
## [1,] 0.09411765 0.03137255 0.07450980 0.10196078 0.09803922 0.10196078
## [2,] 0.09411765 0.04705882 0.08627451 0.11372549 0.09803922 0.09019608
## [3,] 0.10196078 0.08235294 0.09803922 0.09803922 0.08627451 0.09803922
## [4,] 0.12549020 0.10196078 0.09803922 0.10980392 0.10980392 0.10196078
## [5,] 0.11372549 0.10980392 0.10980392 0.11764706 0.12549020 0.11764706

Dibawah ini merupakah hasil dari manajeman warna diatas

display(Image)
## Only the first frame of the image stack is displayed.
## To display all frames use 'all = TRUE'.

lalu bisa kita buat menjadi berwarna kembali

colorMode(Image) <- Color
display(Image)

Memberikan Filter

Pada bagian ini kita akan melakukan smoothing / blurring menggunakan low-pass filter dan deteksi tepi menggunakan high-pass filter. Berikut kodenya :

  • menggunakan low-pass filter
fLow <- makeBrush(21, shape= 'disc', step=FALSE)^2
fLow <- fLow/sum(fLow)
Image.fLow <- filter2(Image, fLow)
display(Image.fLow)

  • menggunakan high-pass filter
fHigh <- matrix(1, nc = 3, nr = 3)
fHigh[2, 2] <- -8
Image.fHigh <- filter2(Image, fHigh)
display(Image.fHigh)

Sekian dari saya kurang lebihnya mohon maaf. Jangan lupa tunggu update selanjutnya


Copyright : ‪Prof. Dr. Suhartono S.Si M.Kom UIN Maulana Malik Ibrahim Malang

Daftar pustaka :